/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package traspasos.beans;

import abstractClasses.AbstractListadoEntidades;
import entities.Almacen;
import entities.AlmacenTienda;
import entities.EnvioTraspasoMercancia;
import entities.RecepcionTraspasoMercancia;
import entities.Tienda;
import entities.Usuario;
import entities.UsuarioTienda;
import facades.EnvioTraspasoMercanciaFacade;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import qualifiers.EventoEntidadCreada;
import qualifiers.UsuarioLogeado;
import traspasos.qualifiers.EventoTransferenciaRealizada;

/**
 *
 * @author damfercer
 */
/*
@Named(value = "recepcionesPendientesBean")
@SessionScoped
public class RecepcionesPendientesBean extends AbstractListadoEntidades<EnvioTraspasoMercancia, EnvioTraspasoMercanciaFacade> implements Serializable {
    @Inject
    @UsuarioLogeado
    Usuario usuario;
    @Inject
    EnvioTraspasoMercanciaFacade envioTrapsasoMercanciaFacade;
    
    public RecepcionesPendientesBean() {
    }
    
    @PostConstruct
    @Override
    public void init(){
        setFacade(getEntityFacadeInstance().get());
        poblarEnviosPendientes();
    }
    
    public void onTransferenciaRealizada(@Observes @EventoTransferenciaRealizada Integer i){
        poblarEnviosPendientes();
    }
    
    @Override
    public void onEntidadCreada(@Observes @EventoEntidadCreada EnvioTraspasoMercancia entidad){
        poblarEnviosPendientes();
    }
    //TODO: ver
    public void onNuevaEntidad(@Observes @EventoEntidadCreada RecepcionTraspasoMercancia recepcion){
        poblarEnviosPendientes();
    }
    
    private void poblarEnviosPendientes(){
        setListadoEntidades(getEnviosPendientesDeUsuario());
    }
    
    private List<EnvioTraspasoMercancia> getEnviosPendientesDeUsuario(){
        List<EnvioTraspasoMercancia> lineas=new ArrayList<EnvioTraspasoMercancia>();
        List<UsuarioTienda> usuarioTiendas=usuario.getUsuarioTiendaList();
        for (UsuarioTienda usuarioTienda : usuarioTiendas) {
            Tienda t=usuarioTienda.getTienda();
            for (AlmacenTienda almacenTienda : t.getAlmacenTiendaList()) {
                Almacen almacenVentas=almacenTienda.getAlmacen();
                lineas.addAll(envioTrapsasoMercanciaFacade.getEnviosPendientesDeRecepcionarEnAlmacen(almacenVentas));
                if(almacenVentas.getAlmacenList()!=null && !almacenVentas.getAlmacenList().isEmpty()){
                    Almacen almacenReserva=almacenVentas.getAlmacenList().iterator().next();
                    lineas.addAll(envioTrapsasoMercanciaFacade.getEnviosPendientesDeRecepcionarEnAlmacen(almacenReserva));
                }
            }
        }
        return lineas;
    }

    
    public String irANuevaRecepcion(){
        return "/views/tienda/NuevaRecepcionTraspasoMercancia?faces-redirect=true";
    }
}
*/